Web services describe the set of protocols and technologies that enable applications to communicate with each other over the internet. They are part of the e-business framework that relate to bringing commercial services into the internet world with the same quality of service that one would expect from traditional services.
A simple web service involves two parties, a client and a server connected over the internet. The client sends a request over the internet to the server; the server processes the request and sends a response back over the internet to the client; and the client receives the information. Such information could be a weather forecast.
A more complex web service involves multiple nodes such as shown in the prior art of FIG. 1. A client 12 (seller) sends and receives messages from a client 14 (buyer) in order to receive a payment from the client 14. A payment service 18 makes payments on behalf of client 14 and payment service 16 receives payments on behalf of client 12. In this example client 12 requests payment from client 14; client 14 passes the request to payment service 18; payment service 18 prepares a payment order which is forwarded through client 14 and client 12 to payment service 16; payment service 16 sends a message to client 12 if the payment order is excepted.
In the above service a process of fixed steps is defined in each node where each node co-ordinates the next step in the process. Knowledge of the process steps is held in each node. Each node only knows how to perform certain steps in the process on its own or with another node. Each step in the process leads to a further step in the process whereby the process is not defined centrally but across the group of nodes. Once a node has finished its own step in the process it will trigger the next node to start the next step. In this example the node has some control but not individual control of the process.
Such a distributed process is fixed to that process and those nodes. What is required is a solution where a client can choose a process and choose the nodes to be included in that process.